Cat Chen 职业经历

2004 年因为 Google 发布 Gmail 而了解到 Ajax 这个概念,发现前端原来能做那么多事情,不需要总是依赖后端 ASP 等技术动态渲染。我是在那时候开始入坑的,现在都 18 年了吧。

在大学时自己想做什么就做什么,写了不少 JavaScript,在 CSDN 论坛回答了不少问题,拿了微软 MVP 称号。2008 年毕业时加入百度前端部门,然后一直在做跟前端技术相关的事情,虽然不总是狭义上存在浏览器中的前端。

在百度做的第一个产品是百度 Hi 的网页版,作为一个实时聊天软件,有非常多的前后端交互,而且他们还互相依赖。(当时的后端不愿意做今时今日的前端网关和状态机,所以必须逐个调用后端的原子 API。)异步依赖结构复杂,我参考其他语言做了一个在 Promise 没出现之前的 Promise。(JavaScript 的 Promise 当然不是原创的,这个概念在某些语言里早就存在了。)随后随着百度前端开源框架 Tangram 一起开源了。

跳过一些没有特色的经历,下一个有意思的是豌豆荚的前端架构师经历。豌豆荚的 Windows 应用其实是一个定制版的 Chromium,所以前端其实发生在一个 Windows 应用程序里面。绝大多数的前端代码,都可以如同普通网页一样编写。定制版的 Chromium 提供了额外的 API,帮助前端跟后端通信,最终通过 adb 跟 Android 手机连接。那是我第一次远程办公,我平时在广州但每个月有几天飞到北京去。也是第一次负责管理前端团队。

再之后花了 7 年时间在 Facebook,头衔上的「前端」仅意味着我是以各种面试进入公司的,之后所有人或多或少都是全栈的。如果具体团队具体职责有大量前端工作,那就是前端。如果没有,那就必须要自己找值得做的事情来做,可能是后端可能是任何东西,反正做的东西没有足够的影响力就会被炒,拿着 H-1B 签证哪敢冒险。排除掉会被炒的压力以外,我还挺喜欢这样的安排的,什么事情最重要就做什么事情,不需要讨论这是不是我擅长的、是不是在舒适感区域以外,反正工程性问题要上就上。

现在我该做什么跟我的头衔带不带「前端」这两个字已经没什么关系了。我的头衔带的是「移动」但这在我们公司指的是 React Native,并不偏离前端技术。我现在在推进的事情是移动端的支付合规,我正在调研的事情是「公司的软件工程师职称定义是不是太偏后端了,导致移动端工程师更难获得晋升,导致经理更难正确评价移动端工程师的影响力」。